//
//  LVBaseTableViewModel.h
//  BaseCode
//
//  Created by 曹连华 on 2019/6/20.
//  Copyright © 2019 曹连华. All rights reserved.
//

#import "LVBaseViewModel.h"
#import "LVTableViewDataSource.h"

NS_ASSUME_NONNULL_BEGIN



@interface LVBaseTableViewModel : LVBaseViewModel

@property (nonatomic, strong,readonly) LVTableViewDataSource *dataSource;

///在ViewModel 中调用此函数 进行reloadTableViewBlock 的调用执行 在 reloadTableViewBlock 中调用 [tableView reloadData]
- (void)reloadTableView;

///在ViewModel 中调用此函数 进行reloadTableViewBlock 的调用执行  在 reloadTableViewBlock 中调用 [tableView reloadData]
- (void)reloadTableViewWithIndexPaths:(nullable NSArray<NSIndexPath *>*)indexPaths;

///在ViewModel 中调用此函数 进行reloadTableViewBlock 的调用执行 在 reloadTableViewBlock 中调用 [tableView reloadData]
- (void)reloadSectionsWithSections:(NSIndexSet *)sections;

///在ViewController 实现 reloadTableViewBlock  进行刷新tableView的操作
@property (nonatomic, copy) LVReloadActionBlock reloadTableViewBlock;

/// 在 ViewController 的 didSelectRowAtIndexPath 方法中调用 
- (LVBaseCellRowModel *)didSelectedRowModelWithIndexPath:(NSIndexPath *)indexPath;

/// 在 ViewController 的 didSelectRowAtIndexPath 方法中调用
- (LVBaseCellRowModel *)didSelectedRowModelWithIndexPath:(NSIndexPath *)indexPath
                                         completionBlock:(nullable LVCompletionBlock)completionBlock;
@end

NS_ASSUME_NONNULL_END
